The invention is directed to a method for loading a function offered by a first computer (server) onto a second computer (client), whereby the first computer and the second computer are connected via a network.
A Network references a medium via which computers are connected to one another and via which messages are exchanged between the computers, whether connectionless or connection-oriented. Computer networks and communication networks are examples of such networks.
What Function refers to is a component that is required on a second computer and is made available on a first computer. Such functions can, for example, be programs that are to be loaded via the network from the first computer, procedures in the understanding of a structured programming language or methods in the object-oriented sense.
The programming language JAVA is notoriously known to a person skilled in the art. An important feature of JAVA is its independence from a specific platform (platform-independent). JAVA runs on every system on which a JAVA virtual machine is implemented. This JAVA virtual machine assumes the implementation of the JAVA program, whereby a controlled transmission with subsequent integrity check of the loaded code can ensue. A JAVA Applet refers to an application written in JAVA that is implemented on network browsers and, thus, runs on the JAVA virtual machine integrated in the network browser. In general, each JAVA Applet is also a JAVA Program.
Since, as mentioned, a JAVA virtual machine is needed for a runnable JAVA program (for example, a JAVA Applet), clear losses in running time must be accepted compared to a program (platform-dependent) specifically written for the respective computer. JAVA Byte code refers to a program code that can run platform-independently on every computer that has a JAVA virtual machine available to it. The JAVA byte code is integrated in JAVA Class Files that offer further information useful for the JAVA virtual machine, particularly containing a semantics for the environment of the JAVA virtual machine.
Accordingly, a distinction can be made between platform-dependent programs, i.e. programs specified for the respective computer, and platform-independent programs, i.e. programs runnable independently of the specific computer. The use of program code (also: Code) that utilizes specific hardware features of the respective computer is possible with a platform-dependent program. A significant gain in running time is thus involved in the program execution.
In existing systems that connect various computers to one another via platform-independent programs (for example, JAVA), it is disadvantageous that a platform-independent program produces clear losses in running time, by contrast whereby program code adapted to specific hardware, particularly multimedia hardware, would yield immense running time advantages.
The object of the invention is comprised in specifying a method for loading a function from one computer onto a second computer, whereby the aforementioned disadvantages are avoided.
This object is achieved according to the features of patent claim 1.
The inventive method enables the loading of a function offered by a first computer (server) onto a second computer (client), whereby the first computer and the second computer are connected via a network. To that end, the second computer inquires via the network at the first computer as to whether the function is available in a platform-dependent code. When a platform-dependent code is not available, a platform-independent code of the function is loaded from the first computer and the method is terminated. Otherwise (the platform-dependent code is available), a check is first carried out to see whether this platform-dependent code of the function is already present on the second computer and, when this is the case, this platform-dependent code is loaded and the method is terminated. When, by contrast, the platform-dependent code is not present on the second computer, then a decision is made on the basis of an input as to whether the platform-dependent code should be loaded from the first computer. When it derives from the input that the platform-dependent code should not be loaded, the platform-independent code is loaded and the method is terminated. When a decision is made on the basis of the input that the platform-dependent code should be loaded, then, following a negotiation between the first computer and the second computer, the platform dependent code of the function is loaded onto the second computer.
A development of the invention is comprised therein that the negotiation comprises the following steps:
the second computer requests a list of all available platform-dependent realizations of the function from the first computer. This list is transmitted from the first computer to the second computer. The second computer selects a suitable realization, informs the first computer of this, and requests a transmission of this realization of the function. It is thus assured that a suitable platform-dependent realization is transmitted to the second computer. Let it be noted that such a platform-dependent realization can, in particular, be a program produced for the respective platform or an object code compiled for the respective platform.
Another development is comprised therein that, following the loading of platform-dependent code from the first computer onto the second computer, a security check of this platform-dependent code is implemented This security check can thereby ensue in that an integrity check of this code ensues, preferably with a virus search program, before the loaded, platform-dependent code is implemented on the second computer.
In the framework of an additional development, it is possible to implement the input in one of the following ways:
a) a user indicates whether he wishes to load platform-dependent code from the first computer. The user can thereby make the decision and accept the risk of receiving corrupt code, i.e. faulty code or, for example, code affected by viruses, from the first computer.
B) the input ensues automated in that a list is maintained on the second computer that contains identifiers of computers that reside in a secure environment (trusted server).
C) the input is permanently set to xe2x80x9cLoad platform-dependent codexe2x80x9d when the first computer contains no security-relevant data and/or programs. This is preferably the case given network computers specifically provided therefor. It is generally advantageous when the loaded functions are required only for the time-limited session, the second computer is turned off after the session and/or the data received via the network are not persistently stored.
Another development is that the platform-independent code is a matter of JAVA byte code that is integrated in JAVA class files.